package com.ruoyi.project.product.style.service;

import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.text.Convert;
import com.ruoyi.project.product.style.domain.Style;
import com.ruoyi.project.product.style.mapper.StyleMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StyleServiceImpl implements IStyleService {

    @Autowired
    private StyleMapper styleMapper;

    /**
     * 风格查询
     * @param style
     * @return
     */
    @Override
    public List<Style> selectStyleList(Style style) {
        return styleMapper.selectStyleList(style);
    }

    /**
     * 风格新增
     * @param style
     * @return
     */
    @Override
    public int insertStyle(Style style) {
        return styleMapper.insertStyle(style);
    }

    /**
     * 根据id查询风格
     * @param styleId
     * @return
     */
    @Override
    public Style selectStyleById(Long styleId) {
        return styleMapper.selectStyleById(styleId);
    }

    /**
     * 风格修改
     * @param style
     * @return
     */
    @Override
    public int updateStyle(Style style) {
        return styleMapper.updateStyle(style);
    }

    /**
     * 风格批量删除操作
     * @param ids
     * @return
     * @throws Exception
     */
    @Override
    public int deleteStyleByIds(String ids) throws Exception {
        return styleMapper.deleteStyleByIds(Convert.toLongArray(ids));
    }

    /**
     * 校验风格名称是否存在
     * @param style
     * @return
     */
    @Override
    public String checkStyleNameUnique(Style style) {
        //判断id是否为空，是返回-1，不是获取id
        Long styleId = StringUtils.isNull(style.getStyleId()) ? -1L : style.getStyleId();
        //根据风格名称查询表里的风格名称是否存在
        Style info = styleMapper.checkStyleNameUnique(style.getStyleName());
        //如果info不为空，并且，表里的styleId跟传进来的styleId不相等的话，返回一个1，不然返回一个0
        if (StringUtils.isNotNull(info) && info.getStyleId().longValue() != styleId.longValue())
        {
            return UserConstants.SERIES_NAME_NOT_UNIQUE;
        }
        return UserConstants.SERIES_NAME_UNIQUE;
    }
}
